package com.willie.utils.string;

import java.util.Arrays;
import java.util.Collection;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;

/**
 * ----------------------------------------------
 * <p>类    名：</p>
 * <p>版    权：copyright© firegy.willie</p>
 * <p>作    者: liang</p>
 * <p>创建时间: 2018/6/2 15:50</p>
 * <p>描    述: 字符串工具类</p>
 * <p>修 改 人：</p>
 * <p>修改时间：</p>
 * -----------------------------------------------
 */
public abstract class StringUtil {

    /**
     * 判断字符串是否为空
     *
     * @param s 带校验字符串
     * @return 为空 返回 true, 否则返回false
     */
    public static boolean isEmpty(String s) {
        return s == null || s.isEmpty() ? true : s.trim().isEmpty();
    }

    /**
     * 判断字符串不为空
     *
     * @param s 带校验字符串
     * @return 如果不为空返回true ,否则返回false
     */
    public static boolean isNotEmpty(String s) {
        return !isEmpty(s);
    }

    /**
     * 使用引号拼接字符串
     *
     * @param collection 待拼接参数
     * @return 引号拼接字符串
     */
    public static String concatWithQuot(Collection<String> collection) {
        if (Objects.isNull(collection) || collection.isEmpty()) {
            return null;
        }

        StringBuilder stringBuilder = new StringBuilder();
        collection.forEach(s -> {
            if (null != s) {
                if (stringBuilder.length() > 0) {
                    stringBuilder.append(",").append("'").append(s).append("'");
                } else {
                    stringBuilder.append("'").append(s).append("'");
                }
            }
        });
        return stringBuilder.toString();
    }

    /**
     * 使用逗号拼接字符串
     *
     * @param collection 待拼接参数
     * @return 拼接后的字符串
     */
    public static String concatWithCommas(Collection<String> collection) {
        return Objects.nonNull(collection) && !collection.isEmpty() ? collection.stream().filter(s -> Objects.nonNull(s) && !s.isEmpty()).collect(Collectors.joining(",")) : null;
    }

    /**
     * 将按逗号分隔的字符串转成集合
     *
     * @param s 逗号分隔的字符串 如: "a,b"
     * @return 字符串集
     */
    public static List<String> Convert2List(String s) {
        return s != null ? Arrays.asList(s.split(",")) : null;
    }
}
